package com.ll.exit;


/**
 * @author 刘龙
 * @version 1.0
 */
public class ThreadExit {
    public static void main(String[] args) throws InterruptedException {
        T t = new T();
        t.start();

        // 如果希望main线程去控制t线程的终止,必须可以修改loop变量
        // 修改loop,让t退出run方法, 从而终止 t线程 => 通知方式
        // 让主线程休眠5秒,在通知t线程退出
        Thread.sleep(5 * 1000);
        t.setLoop(false);
    }
}

class T extends Thread {
    /**
     * 设置控制变量
     */
    private boolean loop = true;

    private int count = 0;

    @Override
    public void run() {
        while (loop) {
            try {
                Thread.sleep(50);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            System.out.println("T 运行中..." + (++count));
        }
    }

    public void setLoop(boolean loop) {
        this.loop = loop;
    }
}


